/* Copyright (c) 2004-2024 peigen.info. All rights reserved. */

package info.peigen.hotpot.manage.core.service;

import info.peigen.hotpot.common.service.base.processor.AbstractProcessorService;
import info.peigen.hotpot.manage.core.service.processor.active.*;
import info.peigen.hotpot.manage.core.service.processor.auth.check.AuthCheckValidCodeProcessor;
import info.peigen.hotpot.manage.core.service.processor.auth.check.AuthLoginCheckProcessor;
import info.peigen.hotpot.manage.core.service.processor.create.*;
import info.peigen.hotpot.manage.core.service.processor.edit.*;
import info.peigen.hotpot.manage.core.service.processor.login.LoginResultProcessor;
import info.peigen.hotpot.manage.core.service.processor.login.LoginTokenProcessor;
import info.peigen.hotpot.manage.core.service.processor.result.*;
import info.peigen.hotpot.manage.core.service.processor.store.*;
import info.peigen.hotpot.manage.core.service.processor.user.check.UserCreatePasswordCheckProcessor;
import info.peigen.hotpot.manage.core.service.processor.user.check.UserEditCheckProcessor;
import info.peigen.hotpot.manage.core.service.processor.user.create.UserCreateMobileOrEmailProcessor;
import info.peigen.hotpot.manage.core.service.processor.user.edit.UserEditBusinessProcessor;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import org.noear.solon.annotation.Inject;

/**
 * <b>(AbstractHotpotManageService)</b>
 * "HotpotManage" 服务层抽象类
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2024-06-28
 */
@FieldDefaults(level = AccessLevel.PROTECTED)
@SuppressWarnings("unused")
public class AbstractHotpotManageService extends AbstractProcessorService {
    // Active
    @Inject
    RoleActiveProcessor         roleActiveProcessor;
    @Inject
    OrganizationActiveProcessor organizationActiveProcessor;
    @Inject
    PositionActiveProcessor     positionActiveProcessor;
    @Inject
    RelationActiveProcessor     relationActiveProcessor;
    @Inject
    ResourceActiveProcessor     resourceActiveProcessor;
    @Inject
    UserActiveProcessor         userActiveProcessor;

    // Check
    @Inject
    AuthLoginCheckProcessor     authLoginCheckProcessor;
    @Inject
    AuthCheckValidCodeProcessor authCheckValidCodeProcessor;

    // Create
    @Inject
    RoleCreateProcessor              roleCreateProcessor;
    @Inject
    OrganizationCreateProcessor      organizationCreateProcessor;
    @Inject
    PositionCreateProcessor          positionCreateProcessor;
    @Inject
    RelationCreateProcessor          relationCreateProcessor;
    @Inject
    ResourceCreateProcessor          resourceCreateProcessor;
    @Inject
    UserCreateProcessor              userCreateProcessor;
    @Inject
    UserCreateMobileOrEmailProcessor userCreateMobileOrEmailProcessor;
    @Inject
    UserCreatePasswordCheckProcessor userCreatePasswordCheckProcessor;

    // Edit
    @Inject
    RoleEditProcessor         roleEditProcessor;
    @Inject
    OrganizationEditProcessor organizationEditProcessor;
    @Inject
    PositionEditProcessor     positionEditProcessor;
    @Inject
    RelationEditProcessor     relationEditProcessor;
    @Inject
    ResourceEditProcessor     resourceEditProcessor;
    @Inject
    UserEditProcessor         userEditProcessor;
    @Inject
    UserEditCheckProcessor    userEditCheckProcessor;
    @Inject
    UserEditBusinessProcessor userEditBusinessProcessor;

    // Login
    @Inject
    LoginResultProcessor loginResultProcessor;
    @Inject
    LoginTokenProcessor  loginTokenProcessor;

    // Store
    @Inject
    RoleStoreProcessor         roleStoreProcessor;
    @Inject
    OrganizationStoreProcessor organizationStoreProcessor;
    @Inject
    PositionStoreProcessor     positionStoreProcessor;
    @Inject
    RelationStoreProcessor     relationStoreProcessor;
    @Inject
    ResourceStoreProcessor     resourceStoreProcessor;
    @Inject
    UserStoreProcessor         userStoreProcessor;

    // Result
    @Inject
    RoleCreateResultProcessor         roleCreateResultProcessor;
    @Inject
    OrganizationCreateResultProcessor organizationCreateResultProcessor;
    @Inject
    PositionCreateResultProcessor     positionCreateResultProcessor;
    @Inject
    RelationCreateResultProcessor     relationCreateResultProcessor;
    @Inject
    ResourceCreateResultProcessor     resourceCreateResultProcessor;
    @Inject
    UserCreateResultProcessor         userCreateResultProcessor;

    @Inject
    RoleEditResultProcessor         roleEditResultProcessor;
    @Inject
    OrganizationEditResultProcessor organizationEditResultProcessor;
    @Inject
    PositionEditResultProcessor     positionEditResultProcessor;
    @Inject
    RelationEditResultProcessor     relationEditResultProcessor;
    @Inject
    ResourceEditResultProcessor     resourceEditResultProcessor;
    @Inject
    UserEditResultProcessor         userEditResultProcessor;

}